1. Field of the Invention
Embodiments of the present invention relate to applications and the World Wide Web.
2. Background Art
A web browser is a software application that allows a user to view or download content that is available on a network, such as on a website on the World Wide Web. Content may include text, files, images, audio, video and personal communications. A browser may also allow a user to enter, upload, or execute content. Browsers run on personal computers and mobile devices. Commonly used browsers may presently include, for example, CHROME, FIREFOX, INTERNET EXPLORER, SAFARI, and OPERA.
Browsers may use a number of protocols and standards to obtain or manage content flow. Most browsers primarily use hypertext transfer protocol (HTTP) to fetch content and web pages. Web pages are located using a uniform resource locator (URL), which identifies where the web page may be found. Web pages may be retrieved using the Internet Protocol (IP) address of the computer holding the web page content. In order to be more memorable and human friendly, an IP address or hierarchy may be represented by a hostname (such as www.google.com). A hostname is a domain name that has one or more associated IP addresses. A user may navigate to a web page using a URL hostname. For example, a user may perform a hostname request. A hostname request may include a user clicking on a link on a web page or typing a hostname in a URL bar. Hostnames and other information associated with domain names may be resolved or translated to IP addresses using the Domain Name System (DNS). This DNS resolution system is sometimes referred to as the “phone book” for the Internet.
DNS resolution requires either looking in a local computer cache or querying a set of DNS servers over the network. A request for DNS resolution may also be known as a DNS lookup call. DNS utilizes authoritative name servers to help map domain names to IP addresses in order to avoid having all the information in a single, central DNS server. These and other intermediate name servers may cache DNS resolution information to shorten DNS resolution times.
For example, FIG. 1 illustrates an exemplary system 100 that performs DNS resolution. When network traffic is required, User Datagram Protocol (UDP) packets are sent to a DNS resolver, and eventually a UDP response is provided. DNS resolutions may exist in a local cache, such as DNS cache 110. DNS cache 110 may be an operating system DNS cache. DNS cache 110 may also be a cache in a browser. If a resolution is not in a local cache, the next resolver is commonly Local Area Network (LAN) firewall 120. If a resolution is not cached in LAN firewall 120, resolution may necessitate traffic from the firewall resolver to another resolver, such as Internet Service Provider (ISP) 140, over network 130. The latency time of two such round trips may commonly be no less than 40 ms compared to 0-3 ms when local DNS cache 110 is the source of the resolution. If resolution information is not in the cache of firewall 120 or ISP 140, other intermediate servers 160 may be queried over one or more networks 150. If the hostname is yet to be resolved, authoritative server 170 or main DNS server 180 will be queried and latency to acquire a resolution will be further increased. Failures, delays and lost packets contribute to accumulated latency that can commonly exceed 1 second or longer. Longer latency times cause discomfort to users of a web browser.
DNS resolution times can be reduced. When DNS resolution occurs for a website, cached results will make future visits to a website quicker. For instance, a web page when first visited may have a portion of its presentation latency attributable to DNS resolution, which could exceed 120 milliseconds. Future visits to the same sites while a local cache retains the resolution will resolve DNS queries from cache at no significant latency cost.
User-perceived latency may be reduced through DNS pre-fetching. DNS pre-fetching resolves or fetches a variety of hostnames through the DNS in advance of their absolute necessity, anticipating that one of those name resolutions will probably be useful in an upcoming user web page or hostname request. However, when a web page is visited, additional sub-resources often need to be obtained. These sub-resources may be provided by additional domains which need to be resolved by the DNS system. For example, when a web page is visited, additional sub-resources such as a content server domain, an image server domain, an ad server domain, and a news server domain need to be resolved. These additional resolutions can have an undesirable effect on latency.